﻿package mortal.game.view.combinedServer.data
{
    import Message.Game.*;
    import Message.Public.*;
    import com.gengine.utils.*;
    import extend.language.*;
    import mortal.game.cache.*;
    import mortal.game.manager.*;

    public class CombinedSerUtil extends Object
    {
        private static var len:int = 5;
        private static var startDt:Date = new Date("2015/11/12 00:00:00");
        public static var rankGiftArr:Array = [120502016, 120502017, 120502018];
        public static var rechargeGroupId:int = 20000;
        public static var giftCode:int = 120502009;
        public static var bossGiftCode:int = 120502019;
        public static var bossMesh:String = "q30jgl_ahx_ahmy";
        public static var bossBone:String = "q30jgl_ahx_ahmy";
        public static var bossTextur:String = "q30jgl_ahx_ahmy.abc";
        public static var expGiftCode:int = 120502020;
        public static var comsumGiftCode:int = 120502021;

        public function CombinedSerUtil()
        {
            return;
        }// end function

        public static function getStarDt() : Date
        {
            var _loc_1:* = Cache.instance.combinedSer.openInfo;
            if (_loc_1 == null || _loc_1.isMerge == false)
            {
                return null;
            }
            startDt = _loc_1.mergeDt;
            return startDt;
        }// end function

        public static function getEndDt() : Date
        {
            var _loc_1:* = getStarDt();
            var _loc_2:* = new Date(_loc_1.time + len * 24 * 3600 * 1000);
            return _loc_2;
        }// end function

        public static function isInActiveOpen() : Boolean
        {
            var _loc_1:* = ClockManager.instance.nowDate.time;
            var _loc_2:* = getStarDt();
            var _loc_3:* = getEndDt();
            return _loc_1 >= _loc_2.time && _loc_1 < _loc_3.time;
        }// end function

        public static function getOpenTimeStrArr(param1:Boolean = true) : Array
        {
            var _loc_2:Array = [];
            var _loc_3:* = getStarDt();
            var _loc_4:* = getEndDt();
            var _loc_5:int = 0;
            var _loc_6:* = _loc_5 + 1;
            _loc_2[_loc_6] = _loc_3.fullYear;
            var _loc_7:* = _loc_5 + 1;
            _loc_2[_loc_7] = _loc_3.month + 1;
            var _loc_8:* = _loc_5 + 1;
            _loc_2[_loc_8] = _loc_3.date;
            if (param1)
            {
                var _loc_9:* = _loc_5 + 1;
                _loc_2[_loc_9] = fullTimeStr(_loc_3.hours) + ":" + fullTimeStr(_loc_3.minutes) + ":" + fullTimeStr(_loc_3.seconds);
            }
            var _loc_9:* = _loc_5 + 1;
            _loc_2[_loc_9] = _loc_4.fullYear;
            var _loc_10:* = _loc_5 + 1;
            _loc_2[_loc_10] = _loc_4.month + 1;
            var _loc_11:* = _loc_5 + 1;
            _loc_2[_loc_11] = _loc_4.date;
            if (param1)
            {
                var _loc_12:* = _loc_5 + 1;
                _loc_2[_loc_12] = fullTimeStr(_loc_4.hours) + ":" + fullTimeStr(_loc_4.minutes) + ":" + fullTimeStr(_loc_4.seconds);
            }
            return _loc_2;
        }// end function

        private static function fullTimeStr(param1:int) : String
        {
            if (param1 < 9)
            {
                return "0" + param1;
            }
            return "" + param1;
        }// end function

        public static function canShowIcon() : Boolean
        {
            var _loc_1:* = Cache.instance.combinedSer.openInfo;
            if (_loc_1 == null || _loc_1.isMerge == false)
            {
                return false;
            }
            var _loc_2:* = getStarDt();
            var _loc_3:* = getEndDt();
            var _loc_4:* = ClockManager.instance.nowDate;
            if (_loc_4.time >= _loc_2.time && _loc_4.time < _loc_3.time)
            {
                return true;
            }
            return false;
        }// end function

        public static function getOpenTimeStr(param1:int = 71379, param2:Boolean = true) : String
        {
            var _loc_3:* = CombinedSerUtil.getOpenTimeStrArr(param2);
            var _loc_4:* = LanguageConfig.instance.getString(param1);
            return StringHelper.substitute(_loc_4, _loc_3);
        }// end function

        public static function getLeftTimeArr() : Array
        {
            var _loc_5:int = 0;
            var _loc_6:int = 0;
            var _loc_7:int = 0;
            var _loc_1:* = ClockManager.instance.nowDate;
            var _loc_2:* = getStarDt();
            var _loc_3:* = (_loc_1.time - _loc_2.time) / 1000;
            var _loc_4:Array = [0, 0, 0];
            if (_loc_3 > 0)
            {
                _loc_5 = _loc_3 / (24 * 3600);
                _loc_6 = _loc_3 / 3600 % 24;
                _loc_7 = _loc_3 / 60 % 60;
                _loc_4 = [_loc_5, _loc_6, _loc_7];
            }
            return _loc_4;
        }// end function

        public static function getDayCountDownTime() : Array
        {
            var _loc_1:* = ClockManager.instance.nowDate;
            var _loc_2:* = getEndDt();
            var _loc_3:* = (_loc_2.time - _loc_1.time) / 1000;
            _loc_3 = _loc_3 < 0 ? (0) : (_loc_3);
            var _loc_4:* = int(_loc_3 / (24 * 3600));
            var _loc_5:* = int(_loc_3 / 3600) % 24;
            var _loc_6:* = int(_loc_3 / 60) % 60;
            var _loc_7:* = _loc_3 % 60;
            var _loc_8:* = "" + _loc_4;
            var _loc_9:* = "" + _loc_5;
            var _loc_10:* = (_loc_6 > 9 ? ("") : ("0")) + _loc_6;
            var _loc_11:Array = [_loc_8, _loc_9, _loc_10, _loc_7, "", _loc_3];
            return _loc_11;
        }// end function

        public static function getRwIndex() : int
        {
            var _loc_5:Object = null;
            var _loc_6:int = 0;
            var _loc_7:int = 0;
            if (canShowIcon() == false)
            {
                return -1;
            }
            var _loc_1:* = Cache.instance.combinedSer.rechargeInfo;
            if (_loc_1 == null)
            {
                return -1;
            }
            var _loc_2:* = Cache.instance.combinedSer.getRechrNum();
            var _loc_3:* = CombinedSerConfig.instance().getArrByGroup(rechargeGroupId);
            var _loc_4:int = 0;
            while (_loc_4 < _loc_3.length)
            {
                
                _loc_5 = _loc_3[_loc_4];
                _loc_6 = _loc_5.money;
                _loc_7 = _loc_1.rewardInfo[_loc_6];
                if (_loc_2 >= _loc_6)
                {
                    if (_loc_7 == 0)
                    {
                        return _loc_4;
                    }
                }
                _loc_4++;
            }
            return -1;
        }// end function

        public static function canSeeRechargeMoney(param1:int, param2:int) : Boolean
        {
            var _loc_3:* = findMyRank();
            if (param1 >= (_loc_3 - 1))
            {
                return true;
            }
            return false;
        }// end function

        private static function findMyRank() : int
        {
            var _loc_4:int = 0;
            var _loc_1:* = Cache.instance.combinedSer.rankList;
            var _loc_2:* = Cache.instance.role.entityInfo.entityId.id;
            var _loc_3:* = _loc_1[_loc_4];
            _loc_4 = 0;
            while (_loc_4 < _loc_1.length)
            {
                
                _loc_3 = _loc_1[_loc_4];
                if (_loc_3.entityId == _loc_2)
                {
                    return _loc_3.rank;
                }
                _loc_4++;
            }
            if (_loc_1.length > 0)
            {
                _loc_3 = _loc_1[(_loc_1.length - 1)];
                if (_loc_3)
                {
                    return (_loc_3.rank + 1);
                }
            }
            return (_loc_1.length + 1);
        }// end function

    }
}
